Not applicable.
Not applicable.
1. Field of the Invention
The present invention generally relates to a system and method for testing electronic devices for operability. More particularly, the present invention relates to a system for performing testing of integrated circuits at full clock speed, using test equipment that operates at a speed slower than the full clock speed of the circuitry being tested.
2. Background of the Invention
The development of integrated circuits has become increasingly complex, due in large part to the ever increasing functionality offered by newly developed circuitry. Integrated circuits are constantly surpassing milestones in development, as more and more finctionality is packaged into smaller sizes. This enhanced functionality and the greater number of transistors packaged in an integrated circuit requires more rigorous testing requirements to insure reliability once the device is commercialized. Thus, new integrated circuit designs are repeatedly tested and debugged during the development process to minimize the number and severity of errors that may subsequently arise. Regardless of the rigor of the developmental testing, invariably a certain percentage of manufactured devices will fail prematurely. To prevent such devices from being sold or used in systems, typically some level of testing is performed on manufactured chips to identify those that may fail prematurely.
A number of different types of testing have been used to minimize the possibility of premature failure of manufactured chips. One of the more popular types of testing is Scan testing. Scan testing is a well recognized design-for-test (xe2x80x9cDFTxe2x80x9d) technique used for addressing certain testing problems in very large scale integrated (xe2x80x9cVLSIxe2x80x9d) circuits. See Eichelberger, et al., xe2x80x9cA Logic Design Structure for LSI Testability,xe2x80x9d (IEEE 1977). A full scan design technique transforms a given sequential circuit into a combinational circuit and shift register (referred to as a scan register) for the purpose of testing. This transformation makes it possible to obtain almost complete fault coverage using an Automatic Test Pattern Generation (xe2x80x9cATPGxe2x80x9d) program. Typically, as part of the Scan test, large circuits are partitioned into smaller combinational circuits to facilitate fault isolation and failure analysis.
The scan design technique implements all or most of the state elements in the device under test, such as flip-flops and latches, as scannable flip-flops, which often are referred to as scan-flops. As shown in FIG. 1, a scan-flop 15 simply comprises a standard flip-flop 10 (that forms part of the circuit being tested) and an additional multiplexer 12 used for scan testing. Two inputs are provided to the multiplexer 12, a D (data) input, and an SI (serial input). The multiplexer selects the D or SI input to pass to the flip-flop 10, based on the status of the SHIFT (or ScanShift) signal. Thus, for example, if the ScanShift signal is asserted, the SI input passes to the D input of flip-flop 10, producing a Q output signal and SO (Serial Out) output signal. Conversely, if ScanShift is de-asserted, the D input passes to the D input of flip-flop 10, producing the Q output signal and the Serial Out signal. The flip-flop 10 is clocked by a clock signal (xe2x80x9cCLKxe2x80x9d). The use of the SI, SO and ScanShift signal permits the test equipment to perform tests on the flip-flop 10 and other circuitry connected to the flip-flop, such as other combinational logic.
An example of a device level scan register, or scan-path, appears in FIG. 2. The scan-path includes a plurality of scan-flops 15 cascaded or chained together, all of which receive a CLK signal and the ScanShift signal. Each of the flip-flops receives a Serial In signal that cascades through the flip-flops to produce a Serial Out signal. In addition, each scan-flop 15 receives a pseudo-output from combinational logic, and produces a pseudo-input that is coupled to the combinational logic. The combinational logic also receives primary inputs and produces primary outputs.
A tester or test controller loads/unloads the internal states on the scan-path directly via the scan interface formed by the two data pins, Serial In and Serial Out, and a control terminal, the ScanShift signal. An ATPG program can treat the state elements as pseudo inputs and outputs of the device. During testing, the scan-path itself is first tested by shifting a simple sequence of 1s and 0s through the chained scan-flops. The ATPG program then generates test vectors that are applied to test the combinational logic, as shown, for example, in the timing diagram of FIG. 3. The input values assigned to the pseudo-inputs in a test vector are serially loaded into the state elements via the scan-path, while those assigned to primary input pins are directly applied to those pins. The device then returns to normal operational mode, typically for one clock cycle, to capture the response of the combinational circuit in the scan-flops. The captured response is unloaded via the scan-path and, at the same time, the state element values corresponding to the next test vector are loaded. This testing sequence repeats until all test vectors are applied.
The scan-flop shown in FIGS. 1 and 2 are often called Data-Mux type scan-flops. In this type of scan-flop, both the normal operation and the scan shift operation use a common clock, thus only requiring a single global clock to be distributed throughout the device under test (xe2x80x9cDUTxe2x80x9d). In addition, the ScanShift control signal must be routed throughout the chip being tested. Some scan tests require that the scan operation be performed at the full clock speed of the integrated circuit. Thus, if the device under test is a processor operating at 1 GHz to identify certain operational errors, the scan test must be performed at 1 GHz. Because the Data-Mux type scan-flops run at the internal clock speed, the scan-path comprising the Data-Mux type scan-flops can be easily designed to operate at the full clock speed. Problems arise, however, when interfacing the high speed scan-path with the external test equipment, which must match the high rate of data transfer through the scan-path. This significantly increases the complexity and cost of the test equipment, as well as the fixtures and accessories required for testing.
One common solution to this problem is shown in FIG. 4, in which parallel-in/serial-out (xe2x80x9cPISOxe2x80x9d) registers are used to convert parallel input data to serial data, and conversely, serial-in/parallel-out (xe2x80x9cSIPOxe2x80x9d) registers are used to convert the serial output of the scan register to a parallel output. The PISO registers and SIPO registers therefore are used to throttle input signals from a slower test device to a higher speed device under test, and to throttle down test results from the device under test to the test device. Thus, for example, a 1 GHz device under test may receive 10 parallel input signals from a 100 MHz tester. The 10 input signals, received at 100 MHz, are received in the PISO and converted to 1GHz serial signals to be successively applied to a serial input terminal of the device under test. The 1 GHz signals on the serial output pin are converted to 10 parallel signals in the SIPO register, where the signals are clocked out at 100 MHz. The main problem with this technique is that it requires many input and output terminals on the device under test to implement. In the example above, 10 input pins and 10 output pins are required to effectively provide a single serial input and a single serial output for testing. Needless to say, the overhead associated with configuring a device under test to accept this number of test pins can be prohibitive.
It would be advantageous if a technique could be developed for testing high speed electronic circuits with slower speed test equipment, without requiring a large number of terminals on the device under test to be used for interfacing with the slower speed test equipment. It would also be advantageous if the slower speed test equipment could be used to perform full speed testing of the device under test. Despite the apparent advantages of such a system to date no such system has been developed.
The present invention solves the deficiencies of the prior art by configuring a scan-path as a closed loop scan-wheel. The ratio between the operating speed of the device under test (and thus the scan-flops in the scan-path), and the operating speed of the test equipment defines a scan wheel ratio (referred to as the SwRatio). The SwRatio defines the DUT clock cycles when test data can be loaded into and unloaded from the scan-wheel, and also indicates the number of times that the scan-wheel must be rotated to load all test data into the scan-flops. According to the preferred embodiment, one bit of the scan-wheel data is read and replaced on each clock cycle of the test equipment, using a single pair of serial input (xe2x80x9cSerial Inxe2x80x9d) and serial output (xe2x80x9cSerial Outxe2x80x9d) pins. The scan wheel rotates one bit position for each clock cycle of the device under test (xe2x80x9cDUTxe2x80x9d), so that a different bit of scan-wheel data visits the Scan Wheel Controller on each clock of the DUT. The Scan Wheel Controller, however, only loads and unloads data based on the clock cycle of the test equipment.
After the scan-wheel rotates SwRatio times, one complete set of test data will have been loaded on all scan-flops in the scan-path. At that time, the Scan Wheel Controller asserts a control signal (by de-asserting ScanShift), which causes all scan-flops to capture data from the combinational circuit. This data is the response calculated from the data present in the scan-flops at the beginning of the cycle. On the next clock cycle, the ScanShift signal is re-asserted to resume subsequent loading and unloading of test data by the Scan Wheel controller.
According to the preferred embodiment, the Scan Wheel Controller includes a Scan Length Parity Control Flop that may be added to the scan-path to result in an odd number of scan-flops in the scan-wheel, thus insuring that a different set of scan-flops visit the Scan Wheel Controller during each rotation of a loading/unloading cycle. The Scan Wheel Controller includes a data path and control logic that operate in conjunction to load and unload data from each scan-flop during the Load/Unload cycle, and to capture data during the Capture cycle.